Extreme wildfire risk:
KBDI ≥ 600
Descriptive
statistics, aggregate
N wells in high wildfire risk areas (i.e., areas with KBDI ≥
600):
- 2017: 118409
- 2050: 122186
- 2090: 205670
N wells in high wildfire risk areas (i.e., areas with KBDI ≥ 600)
and on federal lands:
- 2017: 19893
- 2050: 22248
- 2090: 25828
Results, 2017
wildfire risk
Plot. KBDI in study region

Plot. Wells in high wildfire risk areas by state

Table. Wells in high wildfire risk areas by
state
Table. Wells in high wildfire risk areas by
county
Table. Wells in high wildfire risk areas by
operator
Results, 2050
wildfire risk
Plot. KBDI in study region

Plot. Wells in high wildfire risk areas by state

Table. Wells in high wildfire risk areas by
state
Table. Wells in high wildfire risk areas by
county
Table. Wells in high wildfire risk areas by
operator
Results, 2090
wildfire risk
Plot. KBDI in study region

Plot. Wells in high wildfire risk areas by state

Table. Wells in high wildfire risk areas by
state
Table. Wells in high wildfire risk areas by
county
Table. Wells in high wildfire risk areas by
operator
Moderately high
wildfire risk: KBDI ≥ 450
Descriptive
statistics, aggregate
N wells in high wildfire risk areas (i.e., areas with KBDI ≥
450):
- 2017: 551676
- 2050: 820554
- 2090: 1193386
N wells in high wildfire risk areas (i.e., areas with KBDI ≥ 450)
and located on federal lands:
- 2017: 50185
- 2050: 74741
- 2090: 90737
Results, 2017
wildfire risk
Plot. KBDI in study region

Plot. Wells in high wildfire risk areas by state

Table. Wells in high wildfire risk areas by
state
Restarting R session...
Table. Wells in high wildfire risk areas by
county
Table. Wells in high wildfire risk areas by
operator
Results, 2050
wildfire risk
Plot. KBDI in study region

Plot. Wells in high wildfire risk areas by state

Table. Wells in high wildfire risk areas by
state
Table. Wells in high wildfire risk areas by
county
Table. Wells in high wildfire risk areas by
operator
Results, 2090
wildfire risk
Plot. KBDI in study region

Plot. Wells in high wildfire risk areas by state

Table. Wells in high wildfire risk areas by
state
Table. Wells in high wildfire risk areas by
county
Table. Wells in high wildfire risk areas by
operator
LS0tCnRpdGxlOiAiUmVzdWx0czogV2lsZGZpcmVzIGluIGFyZWFzIHdpdGggcHJvamVjdGVkIHdpbGRmaXJlIHJpc2siCm91dHB1dDoKICBodG1sX25vdGVib29rOgogICAgdGhlbWU6IGZsYXRseQogICAgaGlnaGxpZ2h0OiBoYWRkb2NrIAogICAgdG9jOiB5ZXMKICAgIHRvY19kZXB0aDogMgogICAgdG9jX2Zsb2F0OiB5ZXMKICAgIG51bWJlcl9zZWN0aW9uczogdHJ1ZQotLS0KCmBgYHtyIHNldHVwLCBpbmNsdWRlPUZBTFNFfQojIGxvYWRzIG5lY2Vzc2FyeSBwYWNrYWdlcyBhbmQgZGVmaW5lcyBnbG9iYWwgdmFyaWFibGVzCnNvdXJjZSgiLi4vLi4vY29kZS8wLXNldHVwLzAxLXNldHVwLlIiKQpsaWJyYXJ5KCJ2aXJpZGlzIikKYGBgCgpgYGB7ciBkYXRhX2lucHV0LCBpbmNsdWRlPUZBTFNFfQp3ZWxsc19rYmRpIDwtIHJlYWRSRFMoIi4uLy4uL2RhdGEvcHJvY2Vzc2VkL3dlbGxzX2tiZGkucmRzIikKI3N0dWR5X3JlZ2lvbl9zZiA8LSByZWFkUkRTKCIuLi8uLi9kYXRhL2ludGVyaW0vc3R1ZHlfcmVnaW9uX3NmLnJkcyIpCnVzX3N0YXRlc193ZXN0IDwtIHN0X3JlYWQoIi4uLy4uL2RhdGEvcmF3L3VzX2NlbnN1cy90bF8yMDE4X3VzX3N0YXRlLnNocCIpICU+JSAKICBmaWx0ZXIoU1RVU1BTICVpbiUgYygiT1IiLCAiQ0EiLCAiTlYiLCAiQVoiLCAiTVQiLCAiV1kiLCAiVVQiLCAiQ08iLCAiTk0iLAogICAgICAgICAgICAgICAgICAgICAgICJORCIsIlNEIiwgIk5FIiwgIktTIiwgIk9LIiwgIlRYIiwgIk1PIiwgIkFSIiwgIkxBIikpICU+JQogIHN0X2dlb21ldHJ5KCkgJT4lCiAgc3RfdHJhbnNmb3JtKGNyc19hbGJlcnMpCmtiZGlfbWF4XzIwMTdfc2YgPC0gcmVhZFJEUygiLi4vLi4vZGF0YS9pbnRlcmltL2tiZGlfcmFzdGVycy9rYmRpX21heF8yMDE3LnJkcyIpICU+JSAKICBhc190aWJibGUoKSAlPiUKICBzdF9hc19zZihjb29yZHMgPSBjKCJ4IiwgInkiKSwgY3JzID0gY3JzX25hZDgzKSAlPiUgCiAgc3RfdHJhbnNmb3JtKGNyc19hbGJlcnMpICU+JSAKICBzdF9pbnRlcnNlY3Rpb24odXNfc3RhdGVzX3dlc3QpCmtiZGlfbWF4XzIwNTBfc2YgPC0gcmVhZFJEUygiLi4vLi4vZGF0YS9pbnRlcmltL2tiZGlfcmFzdGVycy9rYmRpX21heF8yMDUwLnJkcyIpICU+JSAKICBhc190aWJibGUoKSAlPiUKICBzdF9hc19zZihjb29yZHMgPSBjKCJ4IiwgInkiKSwgY3JzID0gY3JzX25hZDgzKSAlPiUgCiAgc3RfdHJhbnNmb3JtKGNyc19hbGJlcnMpICU+JSAKICBzdF9pbnRlcnNlY3Rpb24odXNfc3RhdGVzX3dlc3QpCmtiZGlfbWF4XzIwOTBfc2YgPC0gcmVhZFJEUygiLi4vLi4vZGF0YS9pbnRlcmltL2tiZGlfcmFzdGVycy9rYmRpX21heF8yMDkwLnJkcyIpICU+JSAKICBhc190aWJibGUoKSAlPiUKICBzdF9hc19zZihjb29yZHMgPSBjKCJ4IiwgInkiKSwgY3JzID0gY3JzX25hZDgzKSAlPiUgCiAgc3RfdHJhbnNmb3JtKGNyc19hbGJlcnMpICU+JSAKICBzdF9pbnRlcnNlY3Rpb24odXNfc3RhdGVzX3dlc3QpCmBgYAoKCiMgRXh0cmVtZSB3aWxkZmlyZSByaXNrOiBLQkRJIOKJpSA2MDAKCiMjIERlc2NyaXB0aXZlIHN0YXRpc3RpY3MsIGFnZ3JlZ2F0ZQoKTiB3ZWxscyBpbiBoaWdoIHdpbGRmaXJlIHJpc2sgYXJlYXMgKGkuZS4sIGFyZWFzIHdpdGggS0JESSDiiaUgNjAwKToKCi0gMjAxNzogYHIgd2VsbHNfa2JkaSAlPiUgZmlsdGVyKGtiZGlfbWF4XzIwMTcgPj0gNjAwKSAlPiUgbnJvd2AKLSAyMDUwOiBgciB3ZWxsc19rYmRpICU+JSBmaWx0ZXIoa2JkaV9tYXhfMjA1MCA+PSA2MDApICU+JSBucm93YAotIDIwOTA6IGByIHdlbGxzX2tiZGkgJT4lIGZpbHRlcihrYmRpX21heF8yMDkwID49IDYwMCkgJT4lIG5yb3dgCgpOIHdlbGxzIGluIGhpZ2ggd2lsZGZpcmUgcmlzayBhcmVhcyAoaS5lLiwgYXJlYXMgd2l0aCBLQkRJIOKJpSA2MDApICphbmQqIG9uIGZlZGVyYWwgbGFuZHM6CgotIDIwMTc6IGByIHdlbGxzX2tiZGkgJT4lIGZpbHRlcih3ZWxsX29uX2ZlZGVyYWxfbGFuZCA9PSAxKSAlPiUgZmlsdGVyKGtiZGlfbWF4XzIwMTcgPj0gNjAwKSAlPiUgbnJvd2AKLSAyMDUwOiBgciB3ZWxsc19rYmRpICU+JSBmaWx0ZXIod2VsbF9vbl9mZWRlcmFsX2xhbmQgPT0gMSkgJT4lIGZpbHRlcihrYmRpX21heF8yMDUwID49IDYwMCkgJT4lIG5yb3dgCi0gMjA5MDogYHIgd2VsbHNfa2JkaSAlPiUgZmlsdGVyKHdlbGxfb25fZmVkZXJhbF9sYW5kID09IDEpICU+JSBmaWx0ZXIoa2JkaV9tYXhfMjA5MCA+PSA2MDApICU+JSBucm93YAoKCiMjIFJlc3VsdHMsIDIwMTcgd2lsZGZpcmUgcmlzawoKKipQbG90LiBLQkRJIGluIHN0dWR5IHJlZ2lvbioqCgpgYGB7ciBlY2hvPUZBTFNFfQpnZ3Bsb3QoKSArCiAgZ2VvbV9zZihkYXRhID0ga2JkaV9tYXhfMjAxN19zZiwgYWVzKGNvbG9yID0ga2JkaV9tYXhfMjAxNykpICsKICBzY2FsZV9jb2xvcl92aXJpZGlzKG9wdGlvbiA9ICJCIikgKwogIGdlb21fc2YoZGF0YSA9IHVzX3N0YXRlc193ZXN0LCBjb2xvciA9ICJ3aGl0ZSIsIGZpbGwgPSBOQSkgKwogIGxhYnMoY29sb3IgPSAiS0JESSIpICsKICB0aGVtZV9taW5pbWFsKCkKYGBgCgoKKipQbG90LiBXZWxscyBpbiBoaWdoIHdpbGRmaXJlIHJpc2sgYXJlYXMgYnkgc3RhdGUqKgoKYGBge3IgZWNobz1GQUxTRX0Kd2VsbHNfa2JkaSAlPiUgCiAgZmlsdGVyKGtiZGlfbWF4XzIwMTcgPj0gNjAwKSAlPiUgCiAgZ3JvdXBfYnkoc3RhdGUpICU+JSAKICBzdW1tYXJpemUobiA9IG4oKSkgJT4lIAogIGdncGxvdCgpICsKICBnZW9tX2JhcihhZXMoc3RhdGUsIG4pLCBzdGF0ID0gImlkZW50aXR5IikgKwogIHRoZW1lX2NsYXNzaWMoKQpgYGAKCioqVGFibGUuIFdlbGxzIGluIGhpZ2ggd2lsZGZpcmUgcmlzayBhcmVhcyBieSBzdGF0ZSoqCgpgYGB7ciBlY2hvPUZBTFNFfQp3ZWxsc19rYmRpICU+JSAKICBmaWx0ZXIoa2JkaV9tYXhfMjAxNyA+PSA2MDApICU+JSAKICBncm91cF9ieShzdGF0ZSkgJT4lIAogIHN1bW1hcml6ZShuID0gbigpKSAjJT4lIAogICNhcnJhbmdlKGRlc2MobikpCmBgYAoKKipUYWJsZS4gV2VsbHMgaW4gaGlnaCB3aWxkZmlyZSByaXNrIGFyZWFzIGJ5IGNvdW50eSoqCgpgYGB7ciBlY2hvPUZBTFNFfQp3ZWxsc19rYmRpICU+JSAKICBmaWx0ZXIoa2JkaV9tYXhfMjAxNyA+PSA2MDApICU+JSAKICBncm91cF9ieShjb3VudHlfcGFyaXNoKSAlPiUgCiAgc3VtbWFyaXplKG4gPSBuKCkpICU+JSAKICBhcnJhbmdlKGRlc2MobikpCmBgYAoKKipUYWJsZS4gV2VsbHMgaW4gaGlnaCB3aWxkZmlyZSByaXNrIGFyZWFzIGJ5IG9wZXJhdG9yKioKCmBgYHtyIGVjaG89RkFMU0V9CndlbGxzX2tiZGkgJT4lIAogIGZpbHRlcihrYmRpX21heF8yMDE3ID49IDYwMCkgJT4lIAogIGdyb3VwX2J5KG9wZXJhdG9yKSAlPiUgCiAgc3VtbWFyaXplKG4gPSBuKCkpICU+JSAKICBhcnJhbmdlKGRlc2MobikpCmBgYAoKCiMjIFJlc3VsdHMsIDIwNTAgd2lsZGZpcmUgcmlzawoKKipQbG90LiBLQkRJIGluIHN0dWR5IHJlZ2lvbioqCgpgYGB7ciBlY2hvPUZBTFNFfQpnZ3Bsb3QoKSArCiAgZ2VvbV9zZihkYXRhID0ga2JkaV9tYXhfMjA1MF9zZiwgYWVzKGNvbG9yID0ga2JkaV9tYXhfMjA1MCkpICsKICBzY2FsZV9jb2xvcl92aXJpZGlzKG9wdGlvbiA9ICJCIikgKwogIGdlb21fc2YoZGF0YSA9IHVzX3N0YXRlc193ZXN0LCBjb2xvciA9ICJ3aGl0ZSIsIGZpbGwgPSBOQSkgKwogIGxhYnMoY29sb3IgPSAiS0JESSIpICsKICB0aGVtZV9taW5pbWFsKCkKYGBgCgoqKlBsb3QuIFdlbGxzIGluIGhpZ2ggd2lsZGZpcmUgcmlzayBhcmVhcyBieSBzdGF0ZSoqCgpgYGB7ciBlY2hvPUZBTFNFfQp3ZWxsc19rYmRpICU+JSAKICBmaWx0ZXIoa2JkaV9tYXhfMjA1MCA+PSA2MDApICU+JSAKICBncm91cF9ieShzdGF0ZSkgJT4lIAogIHN1bW1hcml6ZShuID0gbigpKSAlPiUgCiAgZ2dwbG90KCkgKwogIGdlb21fYmFyKGFlcyhzdGF0ZSwgbiksIHN0YXQgPSAiaWRlbnRpdHkiKSArCiAgdGhlbWVfY2xhc3NpYygpCmBgYAoKKipUYWJsZS4gV2VsbHMgaW4gaGlnaCB3aWxkZmlyZSByaXNrIGFyZWFzIGJ5IHN0YXRlKioKCmBgYHtyIGVjaG89RkFMU0V9CndlbGxzX2tiZGkgJT4lIAogIGZpbHRlcihrYmRpX21heF8yMDUwID49IDYwMCkgJT4lIAogIGdyb3VwX2J5KHN0YXRlKSAlPiUgCiAgc3VtbWFyaXplKG4gPSBuKCkpICU+JSAKICBhcnJhbmdlKGRlc2MobikpCmBgYAoKKipUYWJsZS4gV2VsbHMgaW4gaGlnaCB3aWxkZmlyZSByaXNrIGFyZWFzIGJ5IGNvdW50eSoqCgpgYGB7ciBlY2hvPUZBTFNFfQp3ZWxsc19rYmRpICU+JSAKICBmaWx0ZXIoa2JkaV9tYXhfMjA1MCA+PSA2MDApICU+JSAKICBncm91cF9ieShjb3VudHlfcGFyaXNoKSAlPiUgCiAgc3VtbWFyaXplKG4gPSBuKCkpICU+JSAKICBhcnJhbmdlKGRlc2MobikpCmBgYAoKKipUYWJsZS4gV2VsbHMgaW4gaGlnaCB3aWxkZmlyZSByaXNrIGFyZWFzIGJ5IG9wZXJhdG9yKioKCmBgYHtyIGVjaG89RkFMU0V9CndlbGxzX2tiZGkgJT4lIAogIGZpbHRlcihrYmRpX21heF8yMDUwID49IDYwMCkgJT4lIAogIGdyb3VwX2J5KG9wZXJhdG9yKSAlPiUgCiAgc3VtbWFyaXplKG4gPSBuKCkpICU+JSAKICBhcnJhbmdlKGRlc2MobikpCmBgYAoKCiMjIFJlc3VsdHMsIDIwOTAgd2lsZGZpcmUgcmlzawoKKipQbG90LiBLQkRJIGluIHN0dWR5IHJlZ2lvbioqCgpgYGB7ciBlY2hvPUZBTFNFfQpnZ3Bsb3QoKSArCiAgZ2VvbV9zZihkYXRhID0ga2JkaV9tYXhfMjA5MF9zZiwgYWVzKGNvbG9yID0ga2JkaV9tYXhfMjA5MCkpICsKICBzY2FsZV9jb2xvcl92aXJpZGlzKG9wdGlvbiA9ICJCIikgKwogIGdlb21fc2YoZGF0YSA9IHVzX3N0YXRlc193ZXN0LCBjb2xvciA9ICJ3aGl0ZSIsIGZpbGwgPSBOQSkgKwogIGxhYnMoY29sb3IgPSAiS0JESSIpICsKICB0aGVtZV9taW5pbWFsKCkKYGBgCgoqKlBsb3QuIFdlbGxzIGluIGhpZ2ggd2lsZGZpcmUgcmlzayBhcmVhcyBieSBzdGF0ZSoqCgpgYGB7ciBlY2hvPUZBTFNFfQp3ZWxsc19rYmRpICU+JSAKICBmaWx0ZXIoa2JkaV9tYXhfMjA5MCA+PSA2MDApICU+JSAKICBncm91cF9ieShzdGF0ZSkgJT4lIAogIHN1bW1hcml6ZShuID0gbigpKSAlPiUgCiAgZ2dwbG90KCkgKwogIGdlb21fYmFyKGFlcyhzdGF0ZSwgbiksIHN0YXQgPSAiaWRlbnRpdHkiKSArCiAgdGhlbWVfY2xhc3NpYygpCmBgYAoKKipUYWJsZS4gV2VsbHMgaW4gaGlnaCB3aWxkZmlyZSByaXNrIGFyZWFzIGJ5IHN0YXRlKioKCmBgYHtyIGVjaG89RkFMU0V9CndlbGxzX2tiZGkgJT4lIAogIGZpbHRlcihrYmRpX21heF8yMDkwID49IDYwMCkgJT4lIAogIGdyb3VwX2J5KHN0YXRlKSAlPiUgCiAgc3VtbWFyaXplKG4gPSBuKCkpICMlPiUgCiAgI2FycmFuZ2UoZGVzYyhuKSkKYGBgCgoqKlRhYmxlLiBXZWxscyBpbiBoaWdoIHdpbGRmaXJlIHJpc2sgYXJlYXMgYnkgY291bnR5KioKCmBgYHtyIGVjaG89RkFMU0V9CndlbGxzX2tiZGkgJT4lIAogIGZpbHRlcihrYmRpX21heF8yMDkwID49IDYwMCkgJT4lIAogIGdyb3VwX2J5KGNvdW50eV9wYXJpc2gpICU+JSAKICBzdW1tYXJpemUobiA9IG4oKSkgJT4lIAogIGFycmFuZ2UoZGVzYyhuKSkKYGBgCgoqKlRhYmxlLiBXZWxscyBpbiBoaWdoIHdpbGRmaXJlIHJpc2sgYXJlYXMgYnkgb3BlcmF0b3IqKgoKYGBge3IgZWNobz1GQUxTRX0Kd2VsbHNfa2JkaSAlPiUgCiAgZmlsdGVyKGtiZGlfbWF4XzIwOTAgPj0gNjAwKSAlPiUgCiAgZ3JvdXBfYnkob3BlcmF0b3IpICU+JSAKICBzdW1tYXJpemUobiA9IG4oKSkgJT4lIAogIGFycmFuZ2UoZGVzYyhuKSkKYGBgCgojIE1vZGVyYXRlbHkgaGlnaCB3aWxkZmlyZSByaXNrOiBLQkRJIOKJpSA0NTAKCiMjIERlc2NyaXB0aXZlIHN0YXRpc3RpY3MsIGFnZ3JlZ2F0ZQoKTiB3ZWxscyBpbiBoaWdoIHdpbGRmaXJlIHJpc2sgYXJlYXMgKGkuZS4sIGFyZWFzIHdpdGggS0JESSDiiaUgNDUwKToKCi0gMjAxNzogYHIgd2VsbHNfa2JkaSAlPiUgZmlsdGVyKGtiZGlfbWF4XzIwMTcgPj0gNDUwKSAlPiUgbnJvd2AKLSAyMDUwOiBgciB3ZWxsc19rYmRpICU+JSBmaWx0ZXIoa2JkaV9tYXhfMjA1MCA+PSA0NTApICU+JSBucm93YAotIDIwOTA6IGByIHdlbGxzX2tiZGkgJT4lIGZpbHRlcihrYmRpX21heF8yMDkwID49IDQ1MCkgJT4lIG5yb3dgCgpOIHdlbGxzIGluIGhpZ2ggd2lsZGZpcmUgcmlzayBhcmVhcyAoaS5lLiwgYXJlYXMgd2l0aCBLQkRJIOKJpSA0NTApICphbmQqIGxvY2F0ZWQgb24gZmVkZXJhbCBsYW5kczoKCi0gMjAxNzogYHIgd2VsbHNfa2JkaSAlPiUgZmlsdGVyKHdlbGxfb25fZmVkZXJhbF9sYW5kID09IDEpICU+JSBmaWx0ZXIoa2JkaV9tYXhfMjAxNyA+PSA0NTApICU+JSBucm93YAotIDIwNTA6IGByIHdlbGxzX2tiZGkgJT4lIGZpbHRlcih3ZWxsX29uX2ZlZGVyYWxfbGFuZCA9PSAxKSAlPiUgZmlsdGVyKGtiZGlfbWF4XzIwNTAgPj0gNDUwKSAlPiUgbnJvd2AKLSAyMDkwOiBgciB3ZWxsc19rYmRpICU+JSBmaWx0ZXIod2VsbF9vbl9mZWRlcmFsX2xhbmQgPT0gMSkgJT4lIGZpbHRlcihrYmRpX21heF8yMDkwID49IDQ1MCkgJT4lIG5yb3dgCgojIyBSZXN1bHRzLCAyMDE3IHdpbGRmaXJlIHJpc2sKCioqUGxvdC4gS0JESSBpbiBzdHVkeSByZWdpb24qKgoKYGBge3IgZWNobz1GQUxTRX0KZ2dwbG90KCkgKwogIGdlb21fc2YoZGF0YSA9IGtiZGlfbWF4XzIwMTdfc2YsIGFlcyhjb2xvciA9IGtiZGlfbWF4XzIwMTcpKSArCiAgc2NhbGVfY29sb3JfdmlyaWRpcyhvcHRpb24gPSAiQiIpICsKICBnZW9tX3NmKGRhdGEgPSB1c19zdGF0ZXNfd2VzdCwgY29sb3IgPSAid2hpdGUiLCBmaWxsID0gTkEpICsKICBsYWJzKGNvbG9yID0gIktCREkiKSArCiAgdGhlbWVfbWluaW1hbCgpCmBgYAoKKipQbG90LiBXZWxscyBpbiBoaWdoIHdpbGRmaXJlIHJpc2sgYXJlYXMgYnkgc3RhdGUqKgoKYGBge3IgZWNobz1GQUxTRX0Kd2VsbHNfa2JkaSAlPiUgCiAgZmlsdGVyKGtiZGlfbWF4XzIwMTcgPj0gNDUwKSAlPiUgCiAgZ3JvdXBfYnkoc3RhdGUpICU+JSAKICBzdW1tYXJpemUobiA9IG4oKSkgJT4lIAogIGdncGxvdCgpICsKICBnZW9tX2JhcihhZXMoc3RhdGUsIG4pLCBzdGF0ID0gImlkZW50aXR5IikgKwogIHRoZW1lX2NsYXNzaWMoKQpgYGAKCioqVGFibGUuIFdlbGxzIGluIGhpZ2ggd2lsZGZpcmUgcmlzayBhcmVhcyBieSBzdGF0ZSoqCgpgYGB7ciBlY2hvPUZBTFNFfQp3ZWxsc19rYmRpICU+JSAKICBmaWx0ZXIoa2JkaV9tYXhfMjAxNyA+PSA0NTApICU+JSAKICBncm91cF9ieShzdGF0ZSkgJT4lIAogIHN1bW1hcml6ZShuID0gbigpKSAjJT4lIAogICNhcnJhbmdlKGRlc2MobikpCmBgYAoKKipUYWJsZS4gV2VsbHMgaW4gaGlnaCB3aWxkZmlyZSByaXNrIGFyZWFzIGJ5IGNvdW50eSoqCgpgYGB7ciBlY2hvPUZBTFNFfQp3ZWxsc19rYmRpICU+JSAKICBmaWx0ZXIoa2JkaV9tYXhfMjAxNyA+PSA0NTApICU+JSAKICBncm91cF9ieShjb3VudHlfcGFyaXNoKSAlPiUgCiAgc3VtbWFyaXplKG4gPSBuKCkpICU+JSAKICBhcnJhbmdlKGRlc2MobikpCmBgYAoKKipUYWJsZS4gV2VsbHMgaW4gaGlnaCB3aWxkZmlyZSByaXNrIGFyZWFzIGJ5IG9wZXJhdG9yKioKCmBgYHtyIGVjaG89RkFMU0V9CndlbGxzX2tiZGkgJT4lIAogIGZpbHRlcihrYmRpX21heF8yMDE3ID49IDQ1MCkgJT4lIAogIGdyb3VwX2J5KG9wZXJhdG9yKSAlPiUgCiAgc3VtbWFyaXplKG4gPSBuKCkpICU+JSAKICBhcnJhbmdlKGRlc2MobikpCmBgYAoKIyMgUmVzdWx0cywgMjA1MCB3aWxkZmlyZSByaXNrCgoqKlBsb3QuIEtCREkgaW4gc3R1ZHkgcmVnaW9uKioKCmBgYHtyIGVjaG89RkFMU0V9CmdncGxvdCgpICsKICBnZW9tX3NmKGRhdGEgPSBrYmRpX21heF8yMDUwX3NmLCBhZXMoY29sb3IgPSBrYmRpX21heF8yMDUwKSkgKwogIHNjYWxlX2NvbG9yX3ZpcmlkaXMob3B0aW9uID0gIkIiKSArCiAgZ2VvbV9zZihkYXRhID0gdXNfc3RhdGVzX3dlc3QsIGNvbG9yID0gIndoaXRlIiwgZmlsbCA9IE5BKSArCiAgbGFicyhjb2xvciA9ICJLQkRJIikgKwogIHRoZW1lX21pbmltYWwoKQpgYGAKCioqUGxvdC4gV2VsbHMgaW4gaGlnaCB3aWxkZmlyZSByaXNrIGFyZWFzIGJ5IHN0YXRlKioKCmBgYHtyIGVjaG89RkFMU0V9CndlbGxzX2tiZGkgJT4lIAogIGZpbHRlcihrYmRpX21heF8yMDUwID49IDQ1MCkgJT4lIAogIGdyb3VwX2J5KHN0YXRlKSAlPiUgCiAgc3VtbWFyaXplKG4gPSBuKCkpICU+JSAKICBnZ3Bsb3QoKSArCiAgZ2VvbV9iYXIoYWVzKHN0YXRlLCBuKSwgc3RhdCA9ICJpZGVudGl0eSIpICsKICB0aGVtZV9jbGFzc2ljKCkKYGBgCgoqKlRhYmxlLiBXZWxscyBpbiBoaWdoIHdpbGRmaXJlIHJpc2sgYXJlYXMgYnkgc3RhdGUqKgoKYGBge3IgZWNobz1GQUxTRX0Kd2VsbHNfa2JkaSAlPiUgCiAgZmlsdGVyKGtiZGlfbWF4XzIwNTAgPj0gNDUwKSAlPiUgCiAgZ3JvdXBfYnkoc3RhdGUpICU+JSAKICBzdW1tYXJpemUobiA9IG4oKSkgJT4lIAogIGFycmFuZ2UoZGVzYyhuKSkKYGBgCgoqKlRhYmxlLiBXZWxscyBpbiBoaWdoIHdpbGRmaXJlIHJpc2sgYXJlYXMgYnkgY291bnR5KioKCmBgYHtyIGVjaG89RkFMU0V9CndlbGxzX2tiZGkgJT4lIAogIGZpbHRlcihrYmRpX21heF8yMDUwID49IDQ1MCkgJT4lIAogIGdyb3VwX2J5KGNvdW50eV9wYXJpc2gpICU+JSAKICBzdW1tYXJpemUobiA9IG4oKSkgJT4lIAogIGFycmFuZ2UoZGVzYyhuKSkKYGBgCgoqKlRhYmxlLiBXZWxscyBpbiBoaWdoIHdpbGRmaXJlIHJpc2sgYXJlYXMgYnkgb3BlcmF0b3IqKgoKYGBge3IgZWNobz1GQUxTRX0Kd2VsbHNfa2JkaSAlPiUgCiAgZmlsdGVyKGtiZGlfbWF4XzIwNTAgPj0gNDUwKSAlPiUgCiAgZ3JvdXBfYnkob3BlcmF0b3IpICU+JSAKICBzdW1tYXJpemUobiA9IG4oKSkgJT4lIAogIGFycmFuZ2UoZGVzYyhuKSkKYGBgCgoKIyMgUmVzdWx0cywgMjA5MCB3aWxkZmlyZSByaXNrCgoqKlBsb3QuIEtCREkgaW4gc3R1ZHkgcmVnaW9uKioKCmBgYHtyIGVjaG89RkFMU0V9CmdncGxvdCgpICsKICBnZW9tX3NmKGRhdGEgPSBrYmRpX21heF8yMDkwX3NmLCBhZXMoY29sb3IgPSBrYmRpX21heF8yMDkwKSkgKwogIHNjYWxlX2NvbG9yX3ZpcmlkaXMob3B0aW9uID0gIkIiKSArCiAgZ2VvbV9zZihkYXRhID0gdXNfc3RhdGVzX3dlc3QsIGNvbG9yID0gIndoaXRlIiwgZmlsbCA9IE5BKSArCiAgbGFicyhjb2xvciA9ICJLQkRJIikgKwogIHRoZW1lX21pbmltYWwoKQpgYGAKKipQbG90LiBXZWxscyBpbiBoaWdoIHdpbGRmaXJlIHJpc2sgYXJlYXMgYnkgc3RhdGUqKgoKYGBge3IgZWNobz1GQUxTRX0Kd2VsbHNfa2JkaSAlPiUgCiAgZmlsdGVyKGtiZGlfbWF4XzIwOTAgPj0gNDUwKSAlPiUgCiAgZ3JvdXBfYnkoc3RhdGUpICU+JSAKICBzdW1tYXJpemUobiA9IG4oKSkgJT4lIAogIGdncGxvdCgpICsKICBnZW9tX2JhcihhZXMoc3RhdGUsIG4pLCBzdGF0ID0gImlkZW50aXR5IikgKwogIHRoZW1lX2NsYXNzaWMoKQpgYGAKCioqVGFibGUuIFdlbGxzIGluIGhpZ2ggd2lsZGZpcmUgcmlzayBhcmVhcyBieSBzdGF0ZSoqCgpgYGB7ciBlY2hvPUZBTFNFfQp3ZWxsc19rYmRpICU+JSAKICBmaWx0ZXIoa2JkaV9tYXhfMjA5MCA+PSA0NTApICU+JSAKICBncm91cF9ieShzdGF0ZSkgJT4lIAogIHN1bW1hcml6ZShuID0gbigpKSAlPiUgCiAgYXJyYW5nZShkZXNjKG4pKQpgYGAKCioqVGFibGUuIFdlbGxzIGluIGhpZ2ggd2lsZGZpcmUgcmlzayBhcmVhcyBieSBjb3VudHkqKgoKYGBge3IgZWNobz1GQUxTRX0Kd2VsbHNfa2JkaSAlPiUgCiAgZmlsdGVyKGtiZGlfbWF4XzIwOTAgPj0gNDUwKSAlPiUgCiAgZ3JvdXBfYnkoY291bnR5X3BhcmlzaCkgJT4lIAogIHN1bW1hcml6ZShuID0gbigpKSAlPiUgCiAgYXJyYW5nZShkZXNjKG4pKQpgYGAKCioqVGFibGUuIFdlbGxzIGluIGhpZ2ggd2lsZGZpcmUgcmlzayBhcmVhcyBieSBvcGVyYXRvcioqCgpgYGB7ciBlY2hvPUZBTFNFfQp3ZWxsc19rYmRpICU+JSAKICBmaWx0ZXIoa2JkaV9tYXhfMjA5MCA+PSA0NTApICU+JSAKICBncm91cF9ieShvcGVyYXRvcikgJT4lIAogIHN1bW1hcml6ZShuID0gbigpKSAlPiUgCiAgYXJyYW5nZShkZXNjKG4pKQpgYGAKCg==